k8s、Deployment多副本资源详解、SERVICE通信、案例一nginx端口暴露、案例二tomcat端口暴露 您所在的位置:网站首页 k8s 多实例 k8s、Deployment多副本资源详解、SERVICE通信、案例一nginx端口暴露、案例二tomcat端口暴露

k8s、Deployment多副本资源详解、SERVICE通信、案例一nginx端口暴露、案例二tomcat端口暴露

#k8s、Deployment多副本资源详解、SERVICE通信、案例一nginx端口暴露、案例二tomcat端口暴露| 来源: 网络整理| 查看: 265

文章目录 案例一创建SERVICE案例一nginx端口暴露案例二tomcat端口暴露

使用yaml创建Deployment k8s deployment资源创建流程: 1. 用户通过 kubectl 创建 Deployment。 2. Deployment 创建 ReplicaSet。 3. ReplicaSet 创建 Pod。

对象的命名方式是:子对象的名字 = 父对象名字 + 随机字符串或数字 在这里插入图片描述 Deployment是一个定义及管理多副本应用(即多个副本 Pod)的新一代对象,与Replication Controller相比,它提供了更加完善的功能,使用起来更加简单方便

案例一 例1: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80

启动一个pod 看看有几个副本

[root@k8s-mastet deployment.yaml]# kubectl apply -f nginx-depl.yml deployment.apps/dep01 unchanged service/mysvc unchanged

在这里插入图片描述

创建SERVICE

自己理解就是将自己的端口暴露给外界,让外界能访问

[root@kub-k8s-master prome]# vim nginx-depl.yml apiVersion: apps/v1 kind: Deployment metadata: name: dep01 spec: selector: matchLabels: #必须设定的 app: web replicas: 2 template: metadata: name: testnginx9 labels: app: web spec: containers: - name: testnginx9 image: daocloud.io/library/nginx ports: - containerPort: 80

创建pod

[root@kub-k8s-master prome]# kubectl apply -f nginx-depl.yml 创建service并且以nodePort的方式暴露端口给外网: [root@kub-k8s-master prome]# vim nginx_svc.yaml apiVersion: v1 kind: Service metadata: name: mysvc spec: type: NodePort #类型 ports: - port: 8080 nodePort: 30001 targetPort: 80 selector: #选择器 app: web

创建pod

[root@kub-k8s-master prome]# kubectl apply -f nginx_svc.yaml service/mysvc created

3.测试

[root@kub-k8s-master prome]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 5d18h mysvc NodePort 10.100.166.208 8080:30001/TCP 21s 案例一nginx端口暴露

我直接写到一起拉 直接创建一个pod就可以 vim nginx-depl.yml

apiVersion: apps/v1 kind: Deployment metadata: name: dep01 spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: name: testnginx9 labels: app: nginx spec: containers: - name: testnginx9 image: daocloud.io/library/nginx:1.12.0-alpine ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: mysvc spec: type: NodePort ports: - port: 8080 nodePort: 30001 targetPort: 80 selector: app: nginx

在这里插入图片描述通信原理概念图 在这里插入图片描述创建pod测试

kubectl apply -f nginx-depl.yml

访问10.8.156.119:3001 在这里插入图片描述访问10.8.156.120:3001 在这里插入图片描述

案例二tomcat端口暴露

我先用node节点把镜像拉下来拉,先拉后拉都一样,没有会自己拉取 node节点都操作 在这里插入图片描述

docker pull daocloud.io/library/tomcat:8.0.45

在这里插入图片描述master节点操作 vim tomcat-depl.yml

--- apiVersion: apps/v1 kind: Deployment metadata: name: dep01 spec: selector: matchLabels: app: tomcat replicas: 2 template: metadata: name: testomcat labels: app: tomcat spec: containers: - name: testtomcat image: daocloud.io/library/tomcat:8.0.45 ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: mysvc spec: type: NodePort ports: - port: 8081 nodePort: 30003 targetPort: 8080 selector: app: tomcat

在这里插入图片描述创建一个pod测试

[root@k8s-mastet deployment.yaml]# kubectl apply -f tomcat-depl.yml deployment.apps/dep01 created service/mysvc created [root@k8s-mastet deployment.yaml]# kubectl get pods NAME READY STATUS RESTARTS AGE dep01-76b88bb67b-8kgmh 1/1 Running 0 7s dep01-76b88bb67b-s66z8 1/1 Running 0 7s [root@k8s-mastet deployment.yaml]#

在这里插入图片描述测试10.8.156.119:3003 在这里插入图片描述 测试10.8.156.120:3003 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有